User interface for use with a search engine for searching financial related documents

ABSTRACT

A method for rendering context based information on a user interface includes receiving a user request to extract the context based information from a database. The database includes a plurality of documents and the request includes at least one search criteria required to determine a context of the user request. The method includes generating a list of documents corresponding to the context of the user request and rendering on a viewing portion of the user interface the list of documents corresponding to the context of the user request.

FIELD

The disclosure relates generally to a user interface for use with a search engine for searching financial related documents.

BACKGROUND

Conventional web search engines return links to entire documents in response to a search query consisting of keywords or phrases given by the user. In the financial domain, the end user is often a financial analyst who is researching the information source and looking for specific textual information within a specific contextual topic. Text search software is able to find specific keywords, but typically misses the many synonyms and alternative expressions that the user was not able to think about, or does not have time to go through one by one. For example, “sales growth” as a topic could be expressed as “revenue expansion”, “increasing customer demand” or any number of tens or even hundreds of combinations of synonyms, with phrases broken up within a sentence or across multiple sentences. Searching for each of those terms or all of those terms at once is not practical, as it would take a lot of time, would require referral to synonyms and may not return some or most of the actual sentences or paragraphs that one seeks. Traditional search engines can therefore either miss the relevant and important items of interest, or bring too many documents that contain the same keywords but in the wrong context, in effect rendering the search useless. Also, financial analysts are often evaluating whether the text expressions are positive or negative for the company's stock price, but traditional search engines do not allow the analyst to search for text that is either positive or negative from the perspective of the price of the company's stock. In addition, the analyst would like to know if the statement was made earlier, is a recurring statement and if it refers to an event in the future.

Thus, it is desirable to provide a method and a system for efficiently conducting contextual, uniqueness or recurring, tense and sentiment-aware deep search within a document, and it is to this end that the disclosure is directed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of an implementation of a search system for efficiently conducting contextual and sentiment-aware deep search within a piece of content;

FIG. 2 illustrates an overview of the deep search process;

FIG. 3 illustrates examples of the user interface of the deep search system;

FIG. 4 illustrates more details of the deep search process in the financial domain;

FIGS. 5A and 5B illustrate an example of a user interface for the deep search system for an initial query and a list of results, respectively, in the financial industry;

FIG. 6 illustrates an example of a sentiment heat map user interface of the deep search system;

FIG. 7 illustrates another example of a search results user interface of the deep search system;

FIG. 8 illustrates an example of a search results user interface of the deep search system, where the viewing interface allows the user to compare documents side by side;

FIGS. 9A and 9B illustrate portions of a document highlighted that is made possible by the deep search system; and

FIGS. 10A and 10B illustrate an example of a multi-document summary that is made possible by the deep search system.

DETAILED DESCRIPTION OF ONE OR MORE EMBODIMENTS

The disclosure is particularly applicable to a web-based client server architecture deep search system and method for the financial industry and it is in this context that the disclosure will be described. It will be appreciated, however, that the system and method in accordance with the invention has much greater utility since it can be used for searching in other industries or with other types of pieces of content (such as the legal industry and legal documents, the medical industry and medical documents, etc.) and the system can be implemented using other computer system architectures and the system is not limited to any particular computer architecture. For illustration purposes, the deep search system and method implemented in the financial industry is now described in more detail.

The system and method may be used to perform a textual search across a collection of documents in one or more electronic data sources, in the financial domain, over time, guided by concepts and scenarios pre-defined by financial experts. The system includes a context extraction engine that will a) recognize semantically defined unique and recurring scenarios within the textual material, consisting of a partial or whole sentence or multiple sentences, b) analyze and classify each scenario based on tense recognizing linguistic rules and natural language processing techniques, c) analyze sentiment and subjectivity to determine if the scenario is objective or subjective and d) determine the polarity and strength of sentiment relative to the company releasing the textual information and the likely impact on its stock price or the price of its other securities. The sentiment, subjectivity, the polarity and strength of the sentiment and the impact of the information may be stored as metadata associated with each piece of content. Based on this metadata, the system enables sophisticated searching within and across pieces of content, such as documents, SEC or other regulatory filings, transcripts of investor calls and presentations, videos, blogs, posts and the like, to find the specific information that the user is looking for. The system also scores companies in real-time on a continuous scale from negative to neutral to positive, and enables a user to rank and screen companies to generate new investment ideas and make better investment decisions. Now, an example of an implementation of the search system is described in more detail.

FIG. 1 illustrates an example of an implementation of a search system 20 for efficiently conducting contextual and sentiment-aware deep search within a piece of content, such as a document, a piece of text, a blog, a posting and the like. The system may be implemented as a client/server type architecture as shown in FIG. 1, but may also be implemented using other architectures, such as cloud computing, software as a service model, a mainframe/terminal model, a stand-alone computer model, a plurality of lines of code on a computer readable medium that can be loaded onto a computer system, a plurality of lines of code downloadable to a computer and the like which are within the scope of the disclosure.

The system 20 may be one or more computing devices 22 (such as computing devices 22 a, 22 b, . . . , 22 n) that connect to, communicate with and/or exchange data over a link 24 to a search system 26 that interact with each other to provide the contextual and sentiment-aware deep search within a piece of content. Each computing device may be a processing unit based device with sufficient processing power, memory/storage and connectivity/communications capabilities to connect to and interact with the system 26. For example, each computing device 22 may be an Apple iPhone or iPad product, a Blackberry or Nokia product, a mobile product that executes the Android operating system, a personal computer, a tablet computer, a laptop computer and the like and the system is not limited to operate with any particular computing device. The link 26 may be any wired or wireless communications link that allows the one or more computing devices and the system 26 to communicate with each other. In one example, the link may be a combination of wireless digital data networks that connect to the computing devices and the Internet. The search system 26 may be implemented as one or more server computers (all located at one geographic location or in disparate locations) that execute a plurality of lines of computer code to implement the functions and operations of the search system as described below in more detail. Alternatively, the search system 26 may be implemented as a hardware unit in which the functions and operations of the back end system are programmed into a hardware system. In one implementation, the one or more server computers may use 4-core Intel® processors, run the Linux operating system, and execute Java, Ruby, Regular Expression, Flex 4.0, SQL etc.

In the implementation shown in FIG. 1, each computing device 22 may further comprise a display 30 a and a browser application 30 b so that the display 30 a can display web pages generated by the search system 26 and the user can fill in forms to provide search queries and the like to the search system 26. The browser application 30 b may be a plurality of lines of computer code executed by a processing unit of the computing device. Each computing device 22 may also have the usual components of a computing device such as one or more processing units, memory, permanent storage, wireless/wired communication circuitry, an operating system, etc. . . . .

In the implementation shown in FIG. 1, the search system 26 may further comprise a web server 40 (that may be software based or hardware based) that allows each computing device to connect to and interact with the search system 26 such as sending web pages and receiving information from the computing devices and a typical operating system 42 that is executed by one or more processing units that are part of the search system implementation. The search system 26 may further comprise a content extraction unit/engine 44, a linguistic analysis and word/phrase tagging unit 45, a sentiment analyzer 46, a search engine 47 and a store 48, that may be implemented as a software based or hardware based database, that may store the pieces of content associated with the system, the metadata generated by the search system for each piece of content, user preferences and the like. The content extraction engine/unit 44 may a) recognize semantically defined scenarios within the textual material, consisting of a partial or whole sentence or multiple sentences. The linguistic unit 45 analyzes and classifies each scenario based on linguistic rules and natural language processing techniques to determine subjectivity that are described below. The sentiment analyzer 46 analyzes sentiment and subjectivity to determine if the scenario is objective or subjective and determines the polarity and strength of sentiment of the sentence, paragraph or appropriate part of the piece of content relative to the company releasing the textual information and the likely impact on its stock price or the price of its other securities. The search engine 47 can perform searches based on the metadata, generate content to be displayed on the user interface of the system as well as generate reports of the system that are described below in more detail. In one implementation, the search engine may be the SOLR search engine which is open source enterprise search platform from the Apache Lucene project (additional information about SOLR can be found at http://lucene.apache.org/solr/ which is incorporated herein by reference.) The store 48 also contains an archive of “raw” pieces of content (unprocessed or tagged) and tagged piece of content. The user interface of the search system (implemented as a user interface unit/portion) allows a user to conduct topical and sentiment filter based deep searches as described below in more detail.

FIG. 2 illustrates an overview of the deep search process 50. In the process, the search system receives feeds, that may be real-time, of pieces of content (52) such as financial documents including 10K, 10Q or other SEC filings, or investor conference call transcripts, in the financial example. The content extractor unit of the system cleans the incoming pieces of content and normalizes the pieces of content (54). The content extractor unit of the system also extracts zones (particular sections of a document such as header, body, exhibits, MDA, and Footnotes in SEC filing documents) and sentences so that unique, meaningful information is separated from recurring or other boilerplate information during natural language processing. Often financial filings contain a large portion of recurring text that is repeated from the prior quarter, and this is typically less interesting to investors than new statements. In the content extractor unit and linguistic unit of the system, using thousands of structured concepts and scenarios defined through careful expert analysis, semantic tags are assigned by linguistic and machine learning processes trained by domain experts (56). The linguistic unit also discerns the topic of the content using special linguistic rules which is different from traditional search engines where a search is performed using word and phrases without contextual understanding of the text. For example, the linguistic analysis unit tags sentences based on their tense, to determine whether they talk about something that happened in the past, is continuing, or is expected to happen in the future. This is accomplished through a combination of linguistic analysis and domain-based language models that understand, for example, that a noun phrase like “deferred expenses” implies something about the future. In the system described here, the custom linguistic rules specifically designed for the financial domain, provide highly specialized and accurate context.

The sentiment analyzer unit of the search system then analyzes each piece of text for subjectivity, performs textual scenario matching and filters the subjective sentences and assigns appropriate polarity based on supervised training rules, by deciding if the particular sentence or paragraph is favorable or unfavorable to the price of the asset in the case of the financial industry example (58,60). Examples of the polarities (negative, neutral and/or positive scenarios) are shown in FIG. 2.

The sentence or paragraph extracted from the piece of content may be marked with the topic tags, polarity tags, index markers, sentiment values etc. and stored in the store 48 that is coupled to the context search engine, the sentiment engine and the linguistic components. The traditional sentiment analysis is focused on the document level, helping users to find whole documents that in the aggregate have a positive or negative tone, as opposed to the sentence or paragraph level where the topic of interest is located. For example, the document level sentiment scores may be computed based on the sentence level scores as a net sentiment percentage of the total possible count. For example, Number of positive statements−Number of negative statements divided by the total number of statements may be used to determine sentiment score of the document, although other methods may be used to determine the sentiment score for the document. In the system described here, the sentiment tags and the topic tags at the sentence, sub-sentence and/or paragraph level provide the user with granular search capabilities and let them find the relevant text that can explain or help predict price changes for a given asset. The search system may then store the final results of all the tagged information in the store 48 associated with the search system.

The system presents a user interface to the user (See FIG. 3 for example), in which the user interface may provide a reading/browsing/searching user interface 62 described below in more detail, a heat map user interface 64 described below in more detail and an aggregated sentiment user interface 66 described below in more detail. Thus, the user interface presents the subjective categories related to financial concepts (in the financial industry example being used for illustration purposes) along with the sentiment categories. The user interface program controls the context search engine by directing the sentiment and contextual topic analyzing subsystems to extract relevant information and return the results back to the user's machine. The information extraction based on the user's preferences may be performed at periodic intervals as new files show up at the data sources. During a search operation, the search agent reviews the text obtained from one or more information sources, identifies the document or documents relevant to the query. Then it performs the context and sentiment extraction at the sentence, paragraph, or at appropriate granular level to find the text portions that match the stated request, highlights the sentiment appropriately, filters or underlines the sentences that match the topic(s), and brings back the result in an easy to read format to the user. The users may be given the choice to quickly drill down to the specific portions and find out the sentiment level, with matching topics and retrieve relevant text that enables them to make better investment decisions in the financial industry example being used for illustration purposes.

FIG. 4 illustrates more details of the deep search process 50 in the financial domain. The process shown in FIG. 4 may be performed for each document/piece of content. In FIG. 4, some of the processes are the same as those shown in FIG. 2 above. Thus, in the financial domain, the retrieving/downloading process 52 may involve the daily or intra-day download or other periodic retrieval of financial documents, such as 10K and 10Q documents from the SEC, which are processed by the system.

Once the financial documents are retrieved, the system performs a data cleansing process 62 in which the system, among other things, removing extra tags, removing styles, removing extra HTML code and reformatting the financial document as HTML without tags. In addition, for example for SEC packages of documents, the system may extract the HTML and text documents from the SEC package and append them into one HTML document. In more detail, the document is received as an HTML formatted document and plain text documents. In order to identify sentences of text in the documents, the system determines what chunks of text are useful statements, where a sentence starts and ends and how HTML may alter the document. In particular, to determine what text chunks are real statements that state something about a matter of affairs, such as: ComEd has no remaining costs to be recognized related to the rate relief commitment as of Sep. 30, 2010, as compared to text chunks that are titles, page footers and headers, such as: Table of Contents or (Dollars in millions, except per share data, unless otherwise noted), the content extracting unit uses a combination of sentence features, such as HTML tags, end-of-sentence punctuation signs, and length thresholds of sentences (in number of words and characters), to separate useful content from the extraneous content. To determine where a sentence begins and ends, the content extraction unit splits sentences at punctuation signs, but takes abbreviations and acronyms into account, such as Mr., Inc., and U.S. If a document is HTML, sentences can usually be expected to occur entirely within one pair of enclosing tags, such as begin and end of paragraph: <p> . . . </p>. There may be multiple sentences within one paragraph, but sentences are not usually split over multiple paragraphs.

However, if a sentence is split over a page break, or if the document is plain text without any HTML formatting, the system concatenates chunks of text to reconstruct the paragraphs in the text by using some heuristics based on the spacing of the text and the occurrence of page footer and header clues, so as not to erroneously concatenate text that does not belong together, such the end of a paragraph and a following section title. When the particular document is split into sentences, each sentence is saved as plain text under TxtData/ and the document is saved as HTML with each sentence embedded with <span> tags, which are used by the search system to highlight sentences when the sentences are displayed to the user.

Once the extraneous content in the document is removed, the content extraction unit extracts the key sentences/portions in the piece of content (64) (such as the Management's Discussion and Analysis (MDA) portions of an SEC filing). An SEC filing contains different sections, such as a document header, document body, and exhibits section. Within the body and exhibits, there are subsections, such as the Management's Discussion and Analysis (MD&A) and the Notes to the Financial Statements. The location of these sections are identified by a combination of regular expression patterns, and some information of the size and order of sections in the document, and some excluding patterns that disqualify matching patterns that occur in the wrong context, such as in the table of contents. The system thus extracts these key portions of the document.

The content extraction unit may also extract recurring/boilerplate sentences in the content (66) (such as sentences that are the same as in prior documents for each asset in an SEC filing).

As companies file on a quarterly basis, typically some of the text they submit is repeated from earlier reports. The content extraction unit identifies the recurring statements and indicate that they are “less interesting” than the new statements by coloring the recurring statements grey in the user interface when shown to the user and by storing them in the store 48 with an indicating that they are recurring statements. Recurring statements are identified by comparing each statement in the current filing to all statements in the previous filing of the company (through the use of the store 48) and a comparison is performed on normalized statements, where some stop words and whitespace characters are ignored. Thus, the system also extracts these recurring portions of the document from the document and store them in the store 48. In one implementation, information about all filings that are currently in the system for a company (in the financial example) are stored in a FORM_TBL table in the store (that may be implemented using MySql) and the recurring sentences are tagged in the files in TxtData/. As in the following steps, each file is read from TxtData/, modified, and written back to TxtData/.

Once the various sentences have been extracted from the document, sentiment, topic, recurring/boilerplate classification and tagging (68) are performed in order to tag and classify each sentence in the document including tags for sentiment, topics, tense, tone, etc. Using a topic taxonomy that is specific to the industry or field in which the documents pertain, the search system identifies which topics are present in the sentences (such as Revenue, Cash flow, Risks, etc for the financial industry). The search system may also perform part-of-speech tagging using a linguistic tagger to identify the parts of speech of the words in the sentences (nouns, verbs, etc.) and the results may be saved under PosTagged/. The system may also identify sentences that are forward looking (containing present and future tense, plans, intentions, . . . ) where part-of-speech tags in combination with industry knowledge based taxonomies are used here for disambiguation (forward looking statements in SEC filings). Boilerplate sentences that typically occur in all filings (such as those explaining what “Forward looking statements” mean) may be similarly recognized and tagged for removal.

The range topics for a particular industry are selected since some topics are of particular interest to financial analysts, such as Sales, Orders and Backlog, Same Store Sales or Net Interest Income. To tag the topics for a particular industry, like the financial industry, the system provides key topic search queries that have been predesigned by financial experts and that identify statements in the text that contain references to the topics. For example, the Orders and Backlog topic may correspond to the following example search query:

([orders] or [sales order] or [services order] or FOLLOW(5, [order], cancellation) or

[order rate] or [commercial order] or [delivery order] or [order amounts] or [order

activity] or backlog

or [task order] or [signings] or [order value] or NEAR(5, [order],

customer) or [customer order] or NEAR(5, [order], delay) or

NEAR(5, [order], cancellation) or FOLLOW(5, time, [order]) or [change order] or [order

volumes] or [order volume] or [ordering patterns] or [order is taken] or [order size] or

FOLLOW(5, [order], shipped) or FOLLOW(5, return, [order]) or [product order]

or FOLLOW(5, convert, [order]) or [subscription order] or [order

growth] or FOLLOW(5, completion, [order]) or [average order] or [order exists] or [new

order] or [order book] or [firm order] or bookings) and not ([auction rate securities] or

[court] or [courts] or [court's] or [obligations] or [commitments] or [in order to])

This query contains the boolean operators or, and, and not that combine different search terms into one query. Words or phrases enclosed in square brackets are literal matches; e.g., [orders] matches the word “orders” (irrespective of character case). Words without square brackets are stemmed before matching; e.g., customer matches any inflected form of “customer”: “customer, customers, customer's”. The special functions FOLLOW and NEAR indicate a set of words that have to occur within a window of predefined size, allowing for stray words within the window that do not match any of the words in the query; e.g., FOLLOW(5, [order], cancellation) indicates that the word “cancellation” may occur at a maximum distance of 5 words from the word “order”, in the given order: “order” before “cancellation”. The function NEAR works as FOLLOW but the order of the words within the clause is free.

An example of the results for tagging sentences for boiler, forward looking statements and topic may be:

The document title/filing: 0001193125-10-241317.txt Company:

Google Inc

Form type: 10Q

Filed on: 20101029

Sentence: On an ongoing basis, we evaluate our estimates, including those related to the accounts receivable and sales allowances, fair values of financial instruments, intangible assets and goodwill, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others.

Sentence id: 112773 is boiler: yes

zone: footnotes, document body Forward Looking

Sentence: yes

Topics: Accounting Policies; Working Capital; Revenue; Capex & Depreciation;

Capital Liquidity; Profit & Costs

Sentence: A discount factor was applied over these estimated cash flows of our ARS, which is calculated based on the interpolated forward swap curve adjusted by up to 1,700 basis points to reflect the current market conditions for instruments with similar credit quality at the date of the valuation and further adjusted by up to 400 basis points to reflect a discount for the liquidity risk associated with these investments due to the lack of an active market.

sentence id: 243505 is boiler: yes

zone: footnotes, document body

fls: yes

topics: Cash Flow; Accounting Policies; Derivatives and Hedging; Revenue; Capital Liquidity; Risks

Sentence: For all acquisitions completed during the nine months ended Sep. 30, 2010, patents and developed technology have a weighted-average useful life of 4.1 years, customer relationships have a weighted-average useful life of 3.3 years and tradenames and other have a weighted-average useful life of 4.0 years.

sentence id: 384406 is boiler: no

zone: footnotes, document body

fls: no

topics: Revenue

As described above, the linguistic unit also discerns the topic of the content using special linguistic rules. The linguistic rules may be, for example:

@MACRO@ @V-MODAL@

-   -   (could|may|might|must|shall|should|will|wo|would)/MD         Or the following macros:

@MACRO@ @@ ( ) //Left/start edge of expression

@MACRO@ @@ ( ) //Right/end edge of expression

@MACRO@ \w [\a-\z\A-\Z\_\0-\9] //A word character

@MACRO@ @VB@ (\w+/VB) //Head verb base form

The natural language processing may include, for example:

We add linguistic knowledge to the statements by using a part-of-speech tagger or syntactic parser. An example of a statement with part-of-speech tags is:

The/DT latter/JJ action/NN would/MD cause/VB some/DT delay/NN in/IN the/DT effectiveness/NN of/IN rates/NNS that/WDT might/MD otherwise/RB become/VB effective/JJ in/IN June/NNP 2011/CD ./.

This linguistic annotation is used in a consequent step that assigns tense to the statement. This means that we identify whether the statement is forward-looking, referring to a future event.

The system defines macros for some frequently occurring constructs, e.g., a macro for modal and auxiliary verbs examples of which are described above for the linguistic rules.

The macros are regular expressions containing information on the words and the part-of-speech tags of the words in a statement. The macros can be used in rules, such as in the following rule:

@@ @ADVP@? @V-MODAL@ @ADVP@? @VB@ @ADVP@? @@

For fast matching, the regular expressions are compiled into Finite State Automata using finite-state algebra.

The search system may also use a syntactic parser, e.g., a dependency parser. For example, the dependency parse of the sentence:

The company has available a $750 million bank credit facility that expires in December 2010.

looks like this:

det(company-2, The-1)

nsubj(has-3, company-2)

dep(has-3, available-4) det(facility-11, a-5)

num(facility-11, $-6)

number($-6, 750-7)

number($-6, million-8)

nn(facility-11, bank-9)

nn(facility-11, credit-10)

dep(available-4, facility-11)

nsubj (expires-13, that-12)

rcmod(facility-11, expires-13) prep(expires-13, in-14)

pobj(in-14, December-15) num(December-15, 2010-16)

Each dependency consists of a relation (e.g., det=determiner) between a head word (e.g., company) and its dependent (e.g, The). Each word token has an ID number attached to it (e.g., company-2) by which it is possible to uniquely identify that word occurrence; this is necessary if the same word occurs multiple times in the sentence, in different syntactic positions.

Rules can be expressed using dependencies. For instance, the sentence above is classified as forward-looking because the dependency prep(expires-13, in-14) matches the rule:

prep(({V}(expire|expires|expiring)@ID@),(at|before|in|on|within)@ID@)// expires on

Example of Results

The/DT latter/JJ action/NN would/MD cause/VB some/DT delay/NN in/IN the/DT effectiveness/NN of/IN rates/NNS that/WDT might/MD otherwise/RB become/VB effective/JJ in/INJune/NNP 2011/CD./.

The above rule determines that the statement “The latter action would cause some delay in the effectiveness of rates that might otherwise become effective in June 2011.” is forward-looking, because it contains the constructs: would/MD cause/VB and might/MD otherwise/RB become/VB.

The sentiment analyzer unit may classify sentences in a document/piece of content as objective (=neutral sentiment) vs. subjective (=positive or negative sentiment). Sentiment extraction involves three steps:

1. Feature extraction: Terms, phrases, or co-occurring words that are judged to be relevant from the point of view of sentiment classification are selected by a domain expert according to the approaches described in above. Another alternative is using n-grams or a combination of features. 2. Objective vs. subjective classification: Supervised machine learning is utilized to learn to distinguish between objective and subjective statements based on the features of step 1. The machine learning techniques can be linear regression, Support Vector Machines, decision trees, or artificial neural networks, to name a few. 3. Positive vs. negative classification: If the sentiment is in step 2 is classified as subjective, then a further classifier classifies the statements as positive or negative or neutral, based on pattern matching against a large database of positive, negative and neutral textual features built by financial domain experts. The open source Support Vector Machine algorithm (LibSVM) is trained based on the annotators results by letting it figure out the key features that happen to affect the predictions the most. This part of the algorithm is based on the open source implementation. The features and the guidelines that drive the annotations described earlier, determine the effectiveness of the classification results and thus distinguish our sentiment prediction from other approaches that happen to use the SVM or other machine learning techniques.

In some embodiments of the system, processes 2 and 3 above may be combined into one single machine learning step. Consider, for instance, the following rule-based approaches to feature extraction for sentiment:

A rule is expressed as an accurate search query with Boolean logic, as described above:

FEATURE_OUR_PROJECTION:

FOLLOW(3, [our] or [its] or company or management, estimate or estimation or target or forecast or forecasted or [projected] or [projection] or [we project] or [company projects] or [management projects] or [we estimate] or [company estimates] or [management estimates]) and not(FOLLOW(3, sales or selling or marketing, expense or expenditure or cost)) and not(FOLLOW(3, require, us, to, estimate) or FOLLOW(3, estimate, that, have, realized) or FOLLOW(3, we, review, our)) and not(FOLLOW(3, tax, rate) or FOLLOW(3, fair, value) or FOLLOW(3, ongoing or going, basis) or FOLLOW(3, continually or continuously, evaluates) or FOLLOW(3, useful, life) or FOLLOW(3, in, making, its) or FOLLOW(3, realizable, value) or FOLLOW(3, discounted, cash, flow)) b, A rule is expressed as a regular expression taking into account both the surface forms of words and potentially their part-of-speech tags, as described above: FEATURE_REVENUE_VOLUMES_REVENUE_GROWTH. @@ (revenue|sales|royalty|business) @WORD6@ (growth|grow|expansion|expand|increase|increasing|enhancement|improvement|improving|improve) @@, where the macro @WORD6@ corresponds to a sequence of stray words, minimum zero and maximum six words: @MACRO@ @WORD6@ @WORD@? @WORD@? @WORD@? @WORD@? @WORD@? @WORD@?

A rule is expressed as one or multiple dependency relations between words.

c. If a full syntactic parser is not available or not a feasible solution (e.g., due to heavy computational requirements), shallow parses can be produced using a set of cascaded rules that are applied on a part-of-speech tagged sentence. Shallow parses are parses of chunks or phrases within a sentence, not necessarily covering the syntax of the entire sentence.

If we start with the following part-of-speech tagged sentence:

The/DT company/NN has/VBZ available/JJ a/DT $/$750/CD million/CD bank/NN credit/NN facility/NN that/WDT expires/VBZ in/IN December/NNP 2010/CD ./.

We get the following shallow parse:

<NP>The company</NP>

<VP>has</VP> available/JJ

<NP>a $750 million bank credit facility</NP>

<NP>that</NP>

<VP>expires</VP>

<PP>in December 2010</PP>

-   -   ./.

Which contains the chunks:

DP 62 0

<DP>The</DP>

DP 62 1<DP>a</DP>

TIME-NP 78 2 num(December,2010)<TIME-NP>December 2010</TIME-NP>

NUM 85 3 number(million, 750)<NUM>$750 million</NUM>

NOM 87 4 nn(facility, bank credit)<NOM>bank credit facility</NOM>

NOM 101 5 num(bank credit facility, 750 million)<NOM>$750 million bank credit facility</NOM>

NP 108 6 det($ 750 million bank credit facility| a)

<NP>a $ 750 million bank credit facility</NP>

NP 109 7 det(company, The)<NP>The company</NP>

PP 119 8 pobj (in, December)<PP>in December 2010</PP>

VP 148 9<VP>has</VP>

VP 148 10<VP>expires</VP>

NP 150 11<NP>that</NP>

To extract sentiment topic features, dependency rules can be written that operate on the dependencies discovered by the shallow parser.

As a result of the processes above, the store 48 has a plurality of sentences for each document with each sentence or other portion of the document having one or more topics tags and sentiments associated with each portion of the document. This combined data is them used to perform the deep searches as described below and generate the user interfaces that are described below.

Once the tagging and classification has been completed, the sentences, sentiments of the sentences and other asset specific information for qualitative, trend and heat map analysis may be loaded into a database (70) so that for example, the heat map as shown in FIG. 7 may be generated by the system.

In addition, the sentences and key paragraphs may be loaded into a SOLR database (72) during indexing so that the search engine can performs its deep searches based on the portions of the documents, the topic tags and the sentiments. In more detail, XML is created that corresponds to the SOLR entries, both on sentence level (TopicXml) and filing level (FullFilingXml). In addition, the data is posted to SOLR, which makes the filing appear in the web application. For historical reasons, the sentence level info is stored in SolrTopic, and the filing level info is stored in SolrMda. In addition, the system also highlights sentiments in the sentences of the document (74) for later viewing as described below in which the sentiments are “tagged” to the sentences and some HTML is added to reflect the highlighting.

FIGS. 5A and 5B illustrate an example of a search user interface 80 for the deep search system for an initial query and a list of results, respectively, in the financial industry. The user interface has a find documents portion 82 that allows the user to specify search criteria for the search by sectors, industries, portfolios, stocks, market capitalization ranges, date ranges, keywords, saved queries and the like. The user interface also has a viewing portion 84 that in FIG. 5A has a form to enter specific search criteria and in FIG. 5B has a list of responsive documents based on a search. The user interface 80 may also have a topics portion 86 that lists the topics associated with the particular subject matter area, the financial industry documents in this example. When the system is used in a different subject matter area, such as the law, the system would like a different set of topics in the list. The list of topics portions can be used at any time during the viewing of documents to change the topics of interest. Any time that the user changes the topics, the viewing portion 84 is dynamically updated as the user changes the topics, for example. In FIG. 5B, if the user selects one of the returned documents shown in the viewing portion 84, the user interface displays the extracted sentences and sentiments for each extracted sentence as shown in FIG. 6. As shown in FIG. 6, the different sentiments of the sentences are shown in different colors (red for negative sentiments 90, green 92 for positive sentiments and plain black/uncolored for neutral sentiment statements.) Specific cue words used in determining sentiment, topic or tense may also be underlined or otherwise marked (although none are shown in the example). In addition, since the system extracts recurring sentences, the user interface may also shown recurring sentences as grayed out (although none are shown in FIG. 6 since the filter to hide boiler sentences has been activated in FIG. 6.) The search system viewing as shown in FIG. 6 allows the user to rapidly review a long document, such as a new SEC filing, and quickly see sentences in the document that are positive, negative or neutral. For the financial world, this deep search engine allows the user to quickly review company SEC filings and determine the effect of the sentences in the filing on the stock price of the company, for example, or to screen a large number of filings for new negative or positive statements on a given topic of interest, where the topic of interest could be “all new negative forward looking statements made by large-cap retail companies in the most recent quarter about their sales in Asia” (which would be done by appropriate selection of filters and searches within the example system).

FIG. 7 illustrates an example of a sentiment heat map user interface 100 of the deep search system. Due to the documents having sentences tagged with sentiment, the sentiment heat map is able to calculate and show the sentiment by industry (such as oil 101, integrated circuits (chips) 102 and the beer industry 104) or other criteria, the colors show the level of positive or negative or neutral outlook for the companies in the industry and the size of rectangle in any one industry corresponds to the market value of the company in the industry in which the larger rectangle indicates are larger market value company. For example, in the oil industry, the larger market value companies have negative sentiments, but a smaller company has a positive sentiment as shown by the smaller green rectangle 1011. In the sentiment heat map, the user can click on any rectangle, see the company name and then select that company to see its documents and the sentiments of the sentences in the documents for the company that led the system to calculate a given sentiment score and display it on the heatmap. The user can alter selections such as the recurring, topic and tense filters, which are dynamically reflected in the heatmap display, with a new sentiment number calculated for all the companies shown.

FIG. 8 illustrates an example of a search results user interface of the deep search system, where the viewing interface allows the user to compare documents side by side that is made possible by the deep search system and processes described above.

The processes of the deep search system and method described above can be used to generate reports for the user that help the user quickly review a quick “cliff notes” summary of the document or a range of documents because the system as described above can identify relevant sentences within a large document, or many documents, based on the user's custom criteria (e.g. topic, tense, tone, recurring, keyword search, industries, market caps, etc. . . . ), and create the document summary of summary of a range of documents. Thus, using the system, a user can skim-read through a pre-highlighted document or multiple documents, focusing on what he had pre-defined as important (and what the system thus highlighted), as opposed to having to read everything. The deep search system may further have a report generator unit that generates reports, such as those shown in FIGS. 9A-10B below based on the processes above.

FIGS. 9A and 9B illustrate portions of a document highlighted that is made possible by the deep search system. In particular, the document is an SEC filing for a company and the system has modified the document to make it easier for a user to quickly review. Using the content extraction, linguistic/tagging process and the sentiment determination process described above, the system highlights different sentences of the document. For example, the system highlight one or more sentence(s) 110 in yellow that match a user's indication of interest in the sentence based on various criteria but are recurring sentences and shown by the grayed out text, highlights one or more sentence(s) 112 is blue that are identified by the system but are recurring sentences and shown by the grayed out text, highlights one or more sentence(s) in yellow that match a user's indication of interest in the sentence based on various criteria and are not recurring sentences and highlights one or more sentence(s) in blue that are identified by the system and are not recurring sentences. In the example in FIGS. 9A and 9B, the user search term was for “new forward looking statements about revenue”—i.e. incorporating both topic and tense into same query, while filtering (or graying) out recurring statements (i.e. those that were simply repeated from the prior filing). The value of this is to help the user quickly skim-read through a pre-highlighted document, focusing on what he had pre-defined as important (and what the system thus highlighted), as opposed to having to read everything.

FIGS. 10A and 10B illustrate an example of a multi-document summary that is made possible by the deep search system. Traditional search engines return full documents that had something potentially relevant in them, and a user has to spend endless amounts of time clicking through those documents to see if there is something potentially useful. However, using the processes of the deep search system, the user can have a custom report generated as shown in FIGS. 10A and 10B which is a user-defined summary of what a selection of companies said about a topic of interest to the user. The example in FIGS. 10A and 10B shows what chip makers said about inventory during the past quarter, an indicator of the business cycle in that industry. As shown, the portions of the documents for each company are shown side-by-side 120-124 with the of interest sentences (based on the user's expressed interest) are highlighted so that the user can quickly review the documents of the three companies in the same industry.

In an implementation of the deep search system, the content extraction processes may include a rule parsing algorithm that emulate key functions such as NEAR, PHRASE, FOLLOW, FUZZY, EXACT, DICTIONARY etc with the rules being expressed as XML and interpreted by our rule process execution engine wherein the rules are applied to extract the topic features for each sentence. In the same implementation, the linguistic process uses an open source finite state machine, regular expression optimizers and PERL style Regular Expression generators. In the same implementation, the sentiment analyzer process uses a combination of linguistic rules and machine learning techniques such as SVM (Support Vector Machine) and Neural Network models. In the sentiment analysis, the system is seeded with the topic features based on topic extracting rules and linguistic features based on shallow and some deep parsing algorithms. Then, the machine learning algorithm select the appropriate features based on human annotated sentences.

While the foregoing has been with reference to a particular embodiment of the invention, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from the principles and spirit of the disclosure, the scope of which is defined by the appended claims. 

The invention claimed is:
 1. A system for rendering information from a database on a user interface of a remote computer, the system comprising a server operable to: receive a query from a user at the remote computer to search within the database, herein the database comprises a plurality of financial documents, wherein the user query includes: information identifying a publicly traded company; a first keyword distinct from the publicly traded company; and a second keyword distinct from the first keyword and the publicly traded company; determine a first similar topic for the first keyword; determine a second similar topic for the second keyword; execute a search based on the user query and the first similar topic and the second similar topic; generate search results in response to the search, the search results including financial documents associated with the publicly traded company in the query, the search results containing identified snippets of text from within the financial documents, the identified snippets of text comprising a complete sentence, wherein an identified snippet of text is identified when the first keyword or the first similar topic appears within a defined maximum distance from the second keyword or the second similar topic in a searched financial document including when the first similar topic appears within the defined maximum distance from the second similar topic in the searched financial document; perform a text analysis to determine one of a negative sentiment and a positive sentiment associated with the identified snippet of text; and create a report based on the search results, the report identifying the sentiment determined for the identified snippet of text.
 2. The system of claim 1, wherein the server is operable to highlight at least a portion of the identified snippet of text.
 3. The system of claim 1, wherein the server is operable to assign both a negative sentiment and a positive sentiment to the identified snippet of text.
 4. The system of claim 1, wherein the server is operable to generate a graphical representation of a plurality of sentiments associated with a plurality of identified snippets of text.
 5. The system of claim 4, wherein the sentiments are linked to a stock price of the publicly traded company.
 6. The system of claim 1, wherein the server is operable to generate the report at predetermined intervals.
 7. The system of claim 1, wherein the server is operable to generate a heat map based on a plurality of sentiment categories.
 8. The system of claim 1, wherein the server is operable to receive a search query at a web page, and generate an alert in response to the search query.
 9. The system of claim 1, wherein the server is operable to determine a sentiment score for the determined sentiment.
 10. The system of claim 1, wherein the server is operable to generate an aggregate of a plurality of sentiments for each of the plurality of financial documents.
 11. The system of claim 10, wherein the plurality of financial documents is associated with a same publicly traded company.
 12. The system of claim 10, wherein the plurality of financial documents is associated with a plurality of publicly traded companies in a same industry.
 13. The system of claim 10, wherein the plurality of financial documents is associated with a same document type.
 14. The system of claim 13, wherein the aggregate of the plurality of sentiments is generated over a time period.
 15. The system of claim 13, wherein the aggregate of the plurality of sentiments is generated for different time intervals. 